Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
After initially failing to get this feature working, I found that the strategy class wasn't in the hash of strategies.
The other thing this PR addresses is removing the client middleware is loaded on the server.
The client middleware checks if a lock is in place and enqueues in its absense. Client middleware on the server however is only hit when the server enqueues to itself which happens when sidekiq takes scheduled items and enqueues them on the work queue.
I was trying to use the
:until_executing
lock along with:replace
strategy, but the server would just take the job and drop inClient::Middleware#call
because the lock only gets released during the server middleware call.All ears if the client middleware on the server is necessary for whatever other reason.
All the tests pass without it (bar the test which just checks the presence of it, which I fixed).